from flask import current_app
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
from info import create_app, db
from info.models import User
from info import models
import pymysql

pymysql.install_as_MySQLdb()

# 创建 app，并传入配置模式：development / production
app = create_app("development")
# print(app.url_map)
# 创建数据库管理对象
manager = Manager(app)
# 添加数据库迁移命令db
Migrate(app, db)
manager.add_command("db", MigrateCommand)


# print(app.url_map)
# 运行flask项目

# 通过命令行方式创建管理用户
@manager.option("-n", "--name", dest="name")
@manager.option("-p", "--password", dest="password")
def createsuperuser(name, password):
    """创建管理员用户"""
    # 参数校验
    if not all([name, password]):
        print("参数不足")

    # 创建管理员用户对象
    user = User()
    user.mobile = name
    user.nick_name = name
    user.password = password
    user.is_admin = True
    # 将创建的管理员用户保存到数据库
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        db.session.rollback()
        current_app.logger.error(e)
        print("保存数据异常")
        return
    print("创建管理员用户成功")


if __name__ == '__main__':
    manager.run()
